'''
输入两行数据I、R，
每行第一个数字代表这行数据的个数，
I 是要进行分类的数据，
R 是类别，要根据R对I进行分类。
输出一行数据，
第一个数是分类后按格式存下来的数据的总数量(len)，
len R[i] index(I) I[index].....

输入：
15 123 456 786 453 46 7 5 3 665 453456 745 456 786 453 123
5 6 3 6 3 0
输出：
30 3 6 0 123 3 453 7 3 9 453456 13 453 14 123 6 7 1 456 2 786 4 46 8 665 9 453456 11 456 12 786
'''

while True:
    try:
        I_nums = input().split()[1:]  # 记得去掉首数字
        R_nums = list(map(str, sorted(map(int, set(input().split()[1:]))))) # 记得去掉首数字
        # print(type(R_nums))

        totalNum = 0
        res = ""
        for num in R_nums:
            singleRes, count = "", 0 # 两个标签，一个记录中间字符串，一个用来去除没有成员的R[i]
            for i, v in enumerate(I_nums):
                if num in v:
                    singleRes += str(i) + " " + v + " "
                    totalNum += 2 # 1个坐标，1个坐标对应的值，所以+2
                    count += 1
            if count: # 如果I中的数据没有一个是符合R[i]条件的，就跳过R[i]
                singleRes = num + " " + str(count) + " " + singleRes
                totalNum += 2
            res += singleRes
        # 上面的拼接方式，会在字符串末端多了一个空格，所以用.rstrip()去除
        print((str(totalNum) + " " + res).rstrip())
    except:
        break

